/*
6-7 结构体指针形式输出
分数 10
作者 唐艳琴
单位 中国人民解放军陆军工程大学

本题要求实现一个函数，倒序输出结构体中从第n个开始到第一个元素，n输入指定。
函数接口定义：

void output(RECORD *p,int n);

其中 p为结构体指针变量，要求在函数中输出p指向的元素到第一个元素的所有。
提示：output(x+n-1);实参传递的是数组一个元素的地址，p接受这个地址后，p从这个地址开始循环到第一个元素通过地址输出元素值
*/

#include <stdio.h>
#define N 5
// typedef struct {
//     char no[10];
//     int score;
// } RECORD;

typedef struct record RECORD;
struct record {
    char no[10];
    int score;
} ;


void output(RECORD *p, int n);

int main() {
    RECORD x[N] = {
        {"s001", 99}, {"s002", 89}, 
        {"s003", 80}, {"s004", 69}, {"s005", 54}};
    int n;
    scanf("%d", &n);
    // x + n - 1 是一个结构体指针，指向第n个元素的地址
    output(x + n - 1, n);
    return 0;
}

/* 请在这里填写答案 */

/*
知识点：
1）结构体定义
2）类型定义：typedef struct { ... } RECORD;
3）结构体指针
4）结构体指针成员的访问方式：p->no, p->score

注意：结构体指针的加减法，指针加减整数，指针移动的是整个结构体的大小

理解：
x + n - 1 是一个结构体指针，指向第n个元素的地址，传递给函数output，函数中通过指针p访问结构体元素，从第n个元素开始，到第一个元素结束。

*/

void output(RECORD *p, int n) {
    for (int i = 0; i < n; i++) {
        printf("%s,%d\n", p->no, p->score);
        p--; // 指针减1，指向前一个元素
    }
}